exclude = ["tools", "examples", "openllm-python/src/openllm_cli/playground/"]
extend-include = ["*.ipynb"]
preview = true
line-length = 119
indent-width = 2

[format]
preview = true
quote-style = "single"
indent-style = "space"
skip-magic-trailing-comma = true

[lint]
typing-modules = [
    "openllm_core._typing_compat",
    "openllm_client._typing_compat",
]
ignore = ["RUF012"]
select = [
    "F",
    "G",    # flake8-logging-format
    "PERF", # perflint
    "RUF",  # Ruff-specific rules
    "W6",
    "E71",
    "E72",
    "E112",
    "E113",
    # "E124",
    "E203",
    "E272",
    # "E303",
    # "E304",
    # "E501",
    # "E502",
    "E702",
    "E703",
    "E731",
    "W191",
    "W291",
    "W293",
    "UP039", # unnecessary-class-parentheses
]

[lint.pydocstyle]
convention = "google"
